package code1.binary_tree;

import java.util.ArrayList;
import java.util.List;

/**
 * 原题链接：https://leetcode.cn/problems/binary-tree-paths/
 */
public class P257 {

    //给你一个二叉树的根节点root，按任意顺序，返回所有从根节点到叶子节点的路径。

    List<String> result=new ArrayList<>();      //返回结果集

    //先序遍历、深度优先搜索
    void preOrder(TreeNode root,String str){
        if(root==null){     //到底端，返回
            return;
        }
        if(root.left==null && root.right==null){     //到达叶子节点
            result.add(str+root.val);
        }
        preOrder(root.left,str+root.val+"->");
        preOrder(root.right,str+root.val+"->");
    }

    public List<String> binaryTreePaths(TreeNode root) {
        preOrder(root,"");
        return result;
    }
}
